/**
 * 
 */
package mm.front.jsf.mb;

import java.math.BigDecimal;
import java.util.List;

import mm.back.entity.Venta;
import mm.back.filtros.VentasFiltro;
import mm.back.service.VentasService;
import mm.front.jsf.ConstantesOutcome;
import mm.front.jsf.JSFUtils;
import mm.front.utils.validations.FiltroVentasValidator;

/**
 * @author PUSDERKIS
 * 
 */
public class VentasViewManagedBean {
	public VentasViewManagedBean() {
	}

	private VentasService ventasService;

	private VentasFiltro ventasFiltro;

	private List<Venta> listaVentas;
	private BigDecimal totalListadoVentas;

	public String buscarVentas(VentasFiltro filtro) {
		
		if(FiltroVentasValidator.validate(filtro) == true)
		 {

			setListaVentas(ventasService.buscarVentas(filtro));

			if (getListaVentas() != null) {
				setTotalListadoVentas(new BigDecimal(0));
				BigDecimal total = BigDecimal.ZERO;
				for (Venta venta : getListaVentas()) {
					total = total.add(venta.getTotal());
				}
				setTotalListadoVentas(total);
			}

			return null;
		}
		JSFUtils.addInfoMessage("La fecha final debe ser al menos igual a la fecha de inicio.");
		return null;
	}

	/**
	 * @return the ventasFiltro
	 */
	public VentasFiltro getVentasFiltro() {
		if (ventasFiltro == null) {
			ventasFiltro = new VentasFiltro();
		}
		return ventasFiltro;
	}

	/**
	 * @param ventasFiltro
	 *            the ventasFiltro to set
	 */
	public void setVentasFiltro(VentasFiltro ventasFiltro) {
		this.ventasFiltro = ventasFiltro;
	}

	/**
	 * @param ventasService
	 *            the ventasService to set
	 */
	public void setVentasService(VentasService ventasService) {
		this.ventasService = ventasService;
	}

	/**
	 * @return the listaVentas
	 */
	public List<Venta> getListaVentas() {
		return listaVentas;
	}

	/**
	 * @param listaVentas
	 *            the listaVentas to set
	 */
	public void setListaVentas(List<Venta> listaVentas) {
		this.listaVentas = listaVentas;
	}

	/**
	 * @return the totalListadoVentas
	 */
	public BigDecimal getTotalListadoVentas() {
		return totalListadoVentas;
	}

	/**
	 * @param totalListadoVentas
	 *            the totalListadoVentas to set
	 */
	public void setTotalListadoVentas(BigDecimal totalListadoVentas) {
		this.totalListadoVentas = totalListadoVentas;
	}

}
